package org.example.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.*;
import org.example.domain.Fruit;
import java.util.List;

/**
 * 水果Mapper接口
 */
@Mapper
public interface FruitMapper extends BaseMapper<Fruit> {
    
    /**
     * 查询所有水果
     * @return 水果列表
     */
    @Select("SELECT * FROM fruit ORDER BY create_time DESC")
    List<Fruit> findAll();
    
    /**
     * 根据ID查询水果
     * @param id 水果ID
     * @return 水果对象
     */
    @Select("SELECT * FROM fruit WHERE id = #{id}")
    Fruit findById(Long id);
    
    /**
     * 新增水果
     * @param fruit 水果对象
     * @return 影响行数
     */
    @Insert("INSERT INTO fruit(name, description, price, unit, category, tag, image, create_time, update_time,type) " +
            "VALUES(#{name}, #{description}, #{price}, #{unit}, #{category}, #{tag}, #{image}, NOW(), NOW(),'上架')")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    int insert(Fruit fruit);
    
    /**
     * 更新水果
     * @param fruit 水果对象
     * @return 影响行数
     */
    @Update("UPDATE fruit SET name = #{name}, description = #{description}, price = #{price}, " +
            "unit = #{unit}, category = #{category}, tag = #{tag}, " +
            "image = #{image}, update_time = NOW() WHERE id = #{id}")
    int update(Fruit fruit);
    
    /**
     * 删除水果
     * @param id 水果ID
     * @return 影响行数
     */
    @Delete("DELETE FROM fruit WHERE id = #{id}")
    int deleteById(Long id);
    /***
     * 获取所有水果名称列表
     * @return
     */
    @Select("select * from fruit")
    List<Fruit> list();
    /**
     * 查看是否有编辑按钮所有权限
     * @return
     */
    @Select("select count(*)) from ")
    Integer editPermission();
    /**
     * 上架,下架水果
     * @return
     */
    @Update("update fruit set type=#{type} where id=#{id}")
    Integer changeStatusById(@Param("id") Integer id, @Param("type") String type);
}